package com.example.shixi.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class BlogArticleExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BlogArticleExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andArticlePicIsNull() {
            addCriterion("article_pic is null");
            return (Criteria) this;
        }

        public Criteria andArticlePicIsNotNull() {
            addCriterion("article_pic is not null");
            return (Criteria) this;
        }

        public Criteria andArticlePicEqualTo(String value) {
            addCriterion("article_pic =", value, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicNotEqualTo(String value) {
            addCriterion("article_pic <>", value, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicGreaterThan(String value) {
            addCriterion("article_pic >", value, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicGreaterThanOrEqualTo(String value) {
            addCriterion("article_pic >=", value, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicLessThan(String value) {
            addCriterion("article_pic <", value, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicLessThanOrEqualTo(String value) {
            addCriterion("article_pic <=", value, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicLike(String value) {
            addCriterion("article_pic like", value, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicNotLike(String value) {
            addCriterion("article_pic not like", value, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicIn(List<String> values) {
            addCriterion("article_pic in", values, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicNotIn(List<String> values) {
            addCriterion("article_pic not in", values, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicBetween(String value1, String value2) {
            addCriterion("article_pic between", value1, value2, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticlePicNotBetween(String value1, String value2) {
            addCriterion("article_pic not between", value1, value2, "articlePic");
            return (Criteria) this;
        }

        public Criteria andArticleNameIsNull() {
            addCriterion("article_name is null");
            return (Criteria) this;
        }

        public Criteria andArticleNameIsNotNull() {
            addCriterion("article_name is not null");
            return (Criteria) this;
        }

        public Criteria andArticleNameEqualTo(String value) {
            addCriterion("article_name =", value, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameNotEqualTo(String value) {
            addCriterion("article_name <>", value, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameGreaterThan(String value) {
            addCriterion("article_name >", value, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameGreaterThanOrEqualTo(String value) {
            addCriterion("article_name >=", value, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameLessThan(String value) {
            addCriterion("article_name <", value, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameLessThanOrEqualTo(String value) {
            addCriterion("article_name <=", value, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameLike(String value) {
            addCriterion("article_name like", value, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameNotLike(String value) {
            addCriterion("article_name not like", value, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameIn(List<String> values) {
            addCriterion("article_name in", values, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameNotIn(List<String> values) {
            addCriterion("article_name not in", values, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameBetween(String value1, String value2) {
            addCriterion("article_name between", value1, value2, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleNameNotBetween(String value1, String value2) {
            addCriterion("article_name not between", value1, value2, "articleName");
            return (Criteria) this;
        }

        public Criteria andArticleTagIsNull() {
            addCriterion("article_tag is null");
            return (Criteria) this;
        }

        public Criteria andArticleTagIsNotNull() {
            addCriterion("article_tag is not null");
            return (Criteria) this;
        }

        public Criteria andArticleTagEqualTo(String value) {
            addCriterion("article_tag =", value, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagNotEqualTo(String value) {
            addCriterion("article_tag <>", value, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagGreaterThan(String value) {
            addCriterion("article_tag >", value, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagGreaterThanOrEqualTo(String value) {
            addCriterion("article_tag >=", value, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagLessThan(String value) {
            addCriterion("article_tag <", value, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagLessThanOrEqualTo(String value) {
            addCriterion("article_tag <=", value, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagLike(String value) {
            addCriterion("article_tag like", value, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagNotLike(String value) {
            addCriterion("article_tag not like", value, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagIn(List<String> values) {
            addCriterion("article_tag in", values, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagNotIn(List<String> values) {
            addCriterion("article_tag not in", values, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagBetween(String value1, String value2) {
            addCriterion("article_tag between", value1, value2, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleTagNotBetween(String value1, String value2) {
            addCriterion("article_tag not between", value1, value2, "articleTag");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkIsNull() {
            addCriterion("article_remark is null");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkIsNotNull() {
            addCriterion("article_remark is not null");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkEqualTo(String value) {
            addCriterion("article_remark =", value, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkNotEqualTo(String value) {
            addCriterion("article_remark <>", value, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkGreaterThan(String value) {
            addCriterion("article_remark >", value, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("article_remark >=", value, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkLessThan(String value) {
            addCriterion("article_remark <", value, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkLessThanOrEqualTo(String value) {
            addCriterion("article_remark <=", value, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkLike(String value) {
            addCriterion("article_remark like", value, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkNotLike(String value) {
            addCriterion("article_remark not like", value, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkIn(List<String> values) {
            addCriterion("article_remark in", values, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkNotIn(List<String> values) {
            addCriterion("article_remark not in", values, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkBetween(String value1, String value2) {
            addCriterion("article_remark between", value1, value2, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleRemarkNotBetween(String value1, String value2) {
            addCriterion("article_remark not between", value1, value2, "articleRemark");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountIsNull() {
            addCriterion("article_read_count is null");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountIsNotNull() {
            addCriterion("article_read_count is not null");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountEqualTo(Integer value) {
            addCriterion("article_read_count =", value, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountNotEqualTo(Integer value) {
            addCriterion("article_read_count <>", value, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountGreaterThan(Integer value) {
            addCriterion("article_read_count >", value, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("article_read_count >=", value, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountLessThan(Integer value) {
            addCriterion("article_read_count <", value, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountLessThanOrEqualTo(Integer value) {
            addCriterion("article_read_count <=", value, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountIn(List<Integer> values) {
            addCriterion("article_read_count in", values, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountNotIn(List<Integer> values) {
            addCriterion("article_read_count not in", values, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountBetween(Integer value1, Integer value2) {
            addCriterion("article_read_count between", value1, value2, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleReadCountNotBetween(Integer value1, Integer value2) {
            addCriterion("article_read_count not between", value1, value2, "articleReadCount");
            return (Criteria) this;
        }

        public Criteria andArticleStateIsNull() {
            addCriterion("article_state is null");
            return (Criteria) this;
        }

        public Criteria andArticleStateIsNotNull() {
            addCriterion("article_state is not null");
            return (Criteria) this;
        }

        public Criteria andArticleStateEqualTo(Integer value) {
            addCriterion("article_state =", value, "articleState");
            return (Criteria) this;
        }

        public Criteria andArticleStateNotEqualTo(Integer value) {
            addCriterion("article_state <>", value, "articleState");
            return (Criteria) this;
        }

        public Criteria andArticleStateGreaterThan(Integer value) {
            addCriterion("article_state >", value, "articleState");
            return (Criteria) this;
        }

        public Criteria andArticleStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("article_state >=", value, "articleState");
            return (Criteria) this;
        }

        public Criteria andArticleStateLessThan(Integer value) {
            addCriterion("article_state <", value, "articleState");
            return (Criteria) this;
        }

        public Criteria andArticleStateLessThanOrEqualTo(Integer value) {
            addCriterion("article_state <=", value, "articleState");
            return (Criteria) this;
        }

        public Criteria andArticleStateIn(List<Integer> values) {
            addCriterion("article_state in", values, "articleState");
            return (Criteria) this;
        }

        public Criteria andArticleStateNotIn(List<Integer> values) {
            addCriterion("article_state not in", values, "articleState");
            return (Criteria) this;
        }

        public Criteria andArticleStateBetween(Integer value1, Integer value2) {
            addCriterion("article_state between", value1, value2, "articleState");
            return (Criteria) this;
        }

        public Criteria andArticleStateNotBetween(Integer value1, Integer value2) {
            addCriterion("article_state not between", value1, value2, "articleState");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Long value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Long value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Long value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Long value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Long value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Long> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Long> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Long value1, Long value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Long value1, Long value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andArticleTypeIsNull() {
            addCriterion("article_type is null");
            return (Criteria) this;
        }

        public Criteria andArticleTypeIsNotNull() {
            addCriterion("article_type is not null");
            return (Criteria) this;
        }

        public Criteria andArticleTypeEqualTo(Long value) {
            addCriterion("article_type =", value, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleTypeNotEqualTo(Long value) {
            addCriterion("article_type <>", value, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleTypeGreaterThan(Long value) {
            addCriterion("article_type >", value, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleTypeGreaterThanOrEqualTo(Long value) {
            addCriterion("article_type >=", value, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleTypeLessThan(Long value) {
            addCriterion("article_type <", value, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleTypeLessThanOrEqualTo(Long value) {
            addCriterion("article_type <=", value, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleTypeIn(List<Long> values) {
            addCriterion("article_type in", values, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleTypeNotIn(List<Long> values) {
            addCriterion("article_type not in", values, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleTypeBetween(Long value1, Long value2) {
            addCriterion("article_type between", value1, value2, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleTypeNotBetween(Long value1, Long value2) {
            addCriterion("article_type not between", value1, value2, "articleType");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumIsNull() {
            addCriterion("article_star_num is null");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumIsNotNull() {
            addCriterion("article_star_num is not null");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumEqualTo(Integer value) {
            addCriterion("article_star_num =", value, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumNotEqualTo(Integer value) {
            addCriterion("article_star_num <>", value, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumGreaterThan(Integer value) {
            addCriterion("article_star_num >", value, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("article_star_num >=", value, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumLessThan(Integer value) {
            addCriterion("article_star_num <", value, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumLessThanOrEqualTo(Integer value) {
            addCriterion("article_star_num <=", value, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumIn(List<Integer> values) {
            addCriterion("article_star_num in", values, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumNotIn(List<Integer> values) {
            addCriterion("article_star_num not in", values, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumBetween(Integer value1, Integer value2) {
            addCriterion("article_star_num between", value1, value2, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleStarNumNotBetween(Integer value1, Integer value2) {
            addCriterion("article_star_num not between", value1, value2, "articleStarNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumIsNull() {
            addCriterion("article_comment_num is null");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumIsNotNull() {
            addCriterion("article_comment_num is not null");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumEqualTo(Integer value) {
            addCriterion("article_comment_num =", value, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumNotEqualTo(Integer value) {
            addCriterion("article_comment_num <>", value, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumGreaterThan(Integer value) {
            addCriterion("article_comment_num >", value, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("article_comment_num >=", value, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumLessThan(Integer value) {
            addCriterion("article_comment_num <", value, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumLessThanOrEqualTo(Integer value) {
            addCriterion("article_comment_num <=", value, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumIn(List<Integer> values) {
            addCriterion("article_comment_num in", values, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumNotIn(List<Integer> values) {
            addCriterion("article_comment_num not in", values, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumBetween(Integer value1, Integer value2) {
            addCriterion("article_comment_num between", value1, value2, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andArticleCommentNumNotBetween(Integer value1, Integer value2) {
            addCriterion("article_comment_num not between", value1, value2, "articleCommentNum");
            return (Criteria) this;
        }

        public Criteria andTopStateIsNull() {
            addCriterion("top_state is null");
            return (Criteria) this;
        }

        public Criteria andTopStateIsNotNull() {
            addCriterion("top_state is not null");
            return (Criteria) this;
        }

        public Criteria andTopStateEqualTo(Integer value) {
            addCriterion("top_state =", value, "topState");
            return (Criteria) this;
        }

        public Criteria andTopStateNotEqualTo(Integer value) {
            addCriterion("top_state <>", value, "topState");
            return (Criteria) this;
        }

        public Criteria andTopStateGreaterThan(Integer value) {
            addCriterion("top_state >", value, "topState");
            return (Criteria) this;
        }

        public Criteria andTopStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("top_state >=", value, "topState");
            return (Criteria) this;
        }

        public Criteria andTopStateLessThan(Integer value) {
            addCriterion("top_state <", value, "topState");
            return (Criteria) this;
        }

        public Criteria andTopStateLessThanOrEqualTo(Integer value) {
            addCriterion("top_state <=", value, "topState");
            return (Criteria) this;
        }

        public Criteria andTopStateIn(List<Integer> values) {
            addCriterion("top_state in", values, "topState");
            return (Criteria) this;
        }

        public Criteria andTopStateNotIn(List<Integer> values) {
            addCriterion("top_state not in", values, "topState");
            return (Criteria) this;
        }

        public Criteria andTopStateBetween(Integer value1, Integer value2) {
            addCriterion("top_state between", value1, value2, "topState");
            return (Criteria) this;
        }

        public Criteria andTopStateNotBetween(Integer value1, Integer value2) {
            addCriterion("top_state not between", value1, value2, "topState");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}